07. august 1999 - 20:12Der er
5 kommentarer og 1 løsning
Break
Jeg er ved at læse en c++ bog men er løbet ind i et lille problem med komandoen 'break' Jeg har lavet et lille program, hvor jeg i linie 18 ønsker at bruge break. Maskinen vil ikke godtage den, hvorfor ikke, jeg har i linie 59 lavet samme procedure med ok resultat......
PROGRAMMET:
# include <iostream> using namespace std;
int main()
{
char navn [20]; char igang;
cout<<"Skriv dit navn: "; cin>>navn; cout<<"\n\nOkay "<<navn<<" skal vi komme igang?"; cin>>igang; if (igang=='y') cout<<"\nOkay dokay....\n\n\n"; else if (igang=='Y') cout<<"\nOkay dokay....\n\n\n"; else break;//***PROBLEM HER****
int i,a,b,c,z,x,y; int kontrol; char yn;
for (kontrol=1; kontrol=1;++kontrol){
z=0;x=0;y=0;yn=0; cout<<"**Skriv tre tal**\n\n"; cout<<"Tal nummer 1: "; cin>>a; cout<<"Tal nummer 2: "; cin>>b; cout<<"Tal nummer 3: "; cin>>c;
i=a+b+c;
if(a>0){ x=1; cout<<"\nNummer 1 storre end 0"; } if (b>0){ y=1; cout<<"\nNummer 2 storre end 0"; } if (c>0){ z=1; cout<<"\nNummer 3 storre end 0"; }
if(i) cout<<"\n\nHov der var "<<y+x+z<<" tal storre end nul,- hva!!\n\n"; else cout<<"\n\nAlle 3 tal var vist nul,- hva!!\n\n";
cout<<"vil du prove igen?(Y/N)"; cin>>yn; if(yn=='y') kontrol=0; else if (yn=='Y') kontrol=0; else break; }
Håber du kan bruge nogle af de supplerende kommentarer. Bare spørg hvis der er noget du ikke er helt med på.
1) Du kan ikke break'e programmet. Du kan skrive "return n;", eller bruge exit(n), hvor n i begge tilfælde blot skal være et heltal. exit(n) kræver proces.h eller stdlib.h
Det andet break virker, da det er for-løkken du break'er.
2) Din for-løkke ville være mere naturlig at lave således:
do { // Indhold cout<<"vil du prove igen?(Y/N)"; cin>>yn; } while(yn=='y' || yn=='Y'); // || betyder eller
3) Der findes også en kommando getch(), som læser et tegn fra tastaturet uden at man skal taste retur. Med getche() kan man også se tegnet. Begge kræver conio.h
syntax: char a; a = getch();
Hermed kan du skrive: do { // Indhold cout<<"vil du prove igen?(Y/N)"; } while(getch()=='y'); // Virker kun på små y'er
Forbedring: while(tolower( getch() )=='y'); tolower() ændrer små bogstaver til store og kræver ctype.h
-------------------------------
NB: Måske kan du også lære mig lidt? Hvad betyder: using namespace std;
Okay, jeg skal se om jeg kan forklare......det er jo ganske nyt for mig!!!!!
using namespace std; er en kommando som gælder for nyere compilere. ældre compilere ville bare bruge # include <iostream.h>
namespace er bare en erklærende(declarative) region. Meningen med namespace er at lokaliserre navne på 'identifiers'(ved ikke lige hvad jeg skal oversætte det til) så der ikke bliver et sammenstød på navne.
using std namespace,- giver ganske enkelt bare adgang til C++´s standart bibliotek!!!!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.