Avatar billede tast Nybegynder
07. august 1999 - 20:12 Der 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;
    }


   
   
    return 0;

}



Tast
Avatar billede bjarke Nybegynder
07. august 1999 - 21:12 #1
Hej tast!

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;

/Bjarke
Avatar billede bjarke Nybegynder
07. august 1999 - 21:13 #2
Hov det skulle have været "svar"! Så det vælger jeg her;-)
Avatar billede tast Nybegynder
07. august 1999 - 22:44 #3
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!!!!

Håber at det bare giver lidt mening......

Tast
Avatar billede bjarke Nybegynder
07. august 1999 - 23:17 #4
Tak - lidt mening gav det. Hvilken compiler bruger du da?

/Bjarke
Avatar billede bjarke Nybegynder
07. august 1999 - 23:21 #5
Forresten: prøv at indtaste -2, 0 og 2. Så får du (vist) en forkert kommentar fra programmet;-)
Avatar billede tast Nybegynder
08. august 1999 - 01:40 #6
Jeg bruger Microsoft visual c++ 5.0

Tast
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester